import request from "@/utils/request"

const AREA_BASE_URL = "/api/object/com.siline.chimes/BaseArea"

class AreaAPI {
  /**
   * 获取行政区域列表
   *
   * @param data 查询参数（可选）
   */
  static query(data: QueryCondition = {}) {
    return request<any, ResponseData<AreaVO[]>>({
      method: "post",
      url: `${AREA_BASE_URL}/query`,
      data,
    })
  }

  /**
   * 获取行政区域表单数据
   *
   * @param id 行政区域ID
   * @returns 行政区域表单数据
   */
  static getFormData(id: number) {
    return request<any, ResponseData<AreaForm>>({
      url: `${AREA_BASE_URL}/select/${id}`,
      method: "get",
    })
  }

  /**
   * 新增行政区域
   *
   * @param data 行政区域表单数据
   * @returns 请求结果
   */
  static add(data: AreaForm) {
    return request({
      url: `${AREA_BASE_URL}/insert`,
      method: "post",
      data: data,
    })
  }

  /**
   * 修改行政区域
   *
   * @param data 行政区域表单数据
   * @returns 请求结果
   */
  static update(data: AreaForm) {
    return request({
      url: `${AREA_BASE_URL}/update`,
      method: "post",
      data: data,
    })
  }
  /**
   * 删除行政区域
   */
  static deleteById(data: AreaForm) {
    return request({
      url: `${AREA_BASE_URL}/delete`,
      method: "post",
      data,
    })
  }
  /**
   * 删除行政区域
   */
  static deleteByCondition(data: QueryCondition) {
    return request({
      url: `${AREA_BASE_URL}/delete_by`,
      method: "post",
      data,
    })
  }
}

export default AreaAPI

/** 行政区域类型 */
export interface AreaVO {
  ccode?: string
  create_id?: number
  create_ms?: number
  del?: number
  enabled?: boolean
  has_children?: boolean
  id?: string
  level?: number
  name?: string
  pcode?: string
  pinyin?: string
  type?: string
  update_id?: number
  update_ms?: number
  ver?: number
}

/** 行政区域表单类型 */
export interface AreaForm {
  id?: string
  name?: string
  pinyin?: string
  ccode?: string
  pcode?: string
  has_children?: boolean
  enabled?: boolean
  type?: string
  del?: number
}
